package com.shrcl.engineerprocess.domain.events;

import com.shrcl.engineerprocess.domain.EngineerProjectAssignment;
import com.shrcl.engineerprocess.domain.EngineerWorkOrder;
import edu.fudan.mylang.pf.event.IEntityEventsListner;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

public interface EngineerWorkOrderEventsListener extends IEntityEventsListner<EngineerWorkOrder> {
  public abstract void $taskFinish(final EngineerWorkOrder entity, final EngineerProjectAssignment projectAssignment);
  
  public abstract void $taskCancel(final EngineerWorkOrder entity, final EngineerProjectAssignment projectAssignment);
  
  public abstract void pendingApply(final EngineerWorkOrder entity);
  
  public abstract void pendingApprove(final EngineerWorkOrder entity);
  
  public abstract void pendingReject(final EngineerWorkOrder entity);
  
  public abstract void finish(final EngineerWorkOrder entity);
  
  public abstract void addAssignment(final EngineerWorkOrder entity, final Procedure1<? super EngineerProjectAssignment> init);
  
  public abstract void delAssignment(final EngineerWorkOrder entity, final EngineerProjectAssignment assignment);
  
  public abstract void commitFinish(final EngineerWorkOrder entity);
  
  public abstract void $startexecute(final EngineerWorkOrder entity, final EngineerProjectAssignment projectAssignment);
}
